const express = require('express');
const router = express.Router();
const dao = require("../dao/mysql/OrdersDao");
const pager = require("../util/PagerHelper.js");
const moment = require('moment');
router.all("/list.do", async (req, res, next) => {
    let where = "";
    let flag = 0;//控制多条件是否要加and
    if (req.body) {
        console.log("req.body", req.body);
        if (req.body.uname) {
            if (where.trim().length === 0) {
                where += "where ";
            }
            
            where += `uname like '%${req.body.uname}%' `;
            flag++;
        }
        if (req.body.uid) {
            if (where.trim().length === 0) {
                where += "where ";
            }
            if (flag > 0) {
                where += " and "
            }
            where += `u.id = ${req.body.uid} `;
            flag++;
        }
        if (req.body.pname) {
            if (where.trim().length === 0) {
                where += "where ";
            }
            if (flag > 0) {
                where += " and "
            }
            where += ` pname like '%${req.body.pname}%' `;
            flag++;
        }
        if (req.body.startTime) {
            if (where.trim().length === 0) {
                where += "where ";
            }
            if (flag > 0) {
                where += " and "
            }
            where += ` otime >= '${req.body.startTime}' `;
            flag++;
        }
        if (req.body.endTime) {
            if (where.trim().length === 0) {
                where += "where ";
            }
            if (flag > 0) {
                where += " and "
            }
            where += ` otime <= '${req.body.endTime}' `;
            flag++;
        }
        if (req.body.oispay||req.body.oispay==0) {
            if (where.trim().length === 0) {
                where += "where ";
            }
            if (flag > 0) {
                where += " and "
            }
            where += ` oispay = '${req.body.oispay}' `;
            flag++;
        }
        if (req.body.oissend||req.body.oissend==0) {
            if (where.trim().length === 0) {
                where += "where ";
            }
            if (flag > 0) {
                where += " and "
            }
            where += ` oissend = '${req.body.oissend}' `;
            flag++;
        }
        if (req.body.address) {
            if (where.trim().length === 0) {
                where += "where ";
            }
            if (flag > 0) {
                where += " and "
            }
            where += ` address like '%${req.body.address}%' `;
            flag++;
        }
        if (req.body.aphone) {
            if (where.trim().length === 0) {
                where += "where ";
            }
            if (flag > 0) {
                where += " and "
            }
            where += ` aphone like '%${req.body.aphone}%' `;
            flag++;
        }
        console.log(where);
    }
    dao.getCount(where).then(count => {
        console.log("count", count);
        pager.setCount(count);
        return dao.findByPage(where);
    }).then(data => {
        console.log("data", data);
        pager.data = data;
        res.json({
            code: 200,
            data:pager
        });
    })
        .catch(err => next(err));
});


router.get("/del.do", (req, res, next) => {
    // lodash.remove(books, value => value.id == req.query.id);
    if (req.query.id) {
        dao.deleteById(req.query.id).then(data => res.json({
            code: 200,
            msg: "删除成功"
        })).catch(err => next(err));
    } else {
        res.json({
            code: 200,
            msg: "删除失败"
        });
    }
});
router.get("/delBatch.do", (req, res, next) => {
    let idsStr = req.query.ids;
    console.log(idsStr);
    let ids;
    if (Array.isArray(idsStr)) {
        ids = idsStr;
    } else {
        ids = idsStr.split(",");//得到的是一个字符串数组
    }

    dao.deleteByIds(ids).then(data => res.json({
        code: 200,
        msg: "删除成功"
    })).catch(err => next(err));
});

router.get("/edit.do", (req, res, next) => {
    let {id} = req.query;
    if (id) {
        // let editObj = books.find(value => value.id == id);
        dao.findById(id).then(editObj => {
            if (editObj) {
                res.json({
                    code: 200,
                    data: editObj
                });
            } else {
                res.json({
                    code: 404,
                    msg: "没有找到记录！"
                });
            }
        }).catch(err => next(err));

    } else {
        res.json({
            code: 404,
            msg: "没有id！"
        });
    }

});
router.post("/save.do", (req, res, next) => {
    let newObj = Object.assign({}, req.body);
    //区分添加还是编辑
    if (newObj.id) {
        //编辑
        // let editObj = books.find(value => value.id == newObj.id);
        // //引用数据类型的特点
        // Object.assign(editObj, newObj);
        newObj.otime = moment(newObj.otime).format('YYYY-MM-DD HH:mm:ss');
        dao.update(newObj, newObj.id).then(data => res.json({
            code: 200,
            msg: "修改成功"
        })).catch(err => next(err));
    } else {
        //添加
        // // books.pop();删除最后一个元素
        // newObj.id = lodash.last(books).id + 1;
        // //保存到数组中
        // books.push(newObj);
        newObj.id = 0;//id是自动增长，必须是0值
        newObj.otime = moment(newObj.otime).format('YYYY-MM-DD HH:mm:ss');
        dao.insert(newObj).then(data => res.json({
            code: 200,
            msg: "添加成功"
        })).catch(err => next(err));
    }
});

module.exports = router;
